/**	 
 * @Description 
 * @Path		com.bbx.androidapi.util.LogUtils.java 
 * @Author		年向   
 * @Date		2015年8月27日 下午8:15:50 
 * @Company	 	蓝海（福建）信息技术有限公司	 
 */
package com.bbx.api.util;

import android.content.Context;
import android.util.Log;

import com.google.code.microlog4android.Logger;
import com.google.code.microlog4android.LoggerFactory;
import com.google.code.microlog4android.config.PropertyConfigurator;

import java.io.File;
import java.io.IOException;

/**
 * @Description
 * @Path com.bbx.androidapi.util.LogUtils.java
 * @Author 年向
 * @Date 2015年8月27日 下午8:15:50
 * @Company 蓝海（福建）信息技术有限公司
 */
public class LogUtils {

	public static Logger logger;

	public static StringBuffer logs = new StringBuffer();

	public static Logger initLog(String path) {
		isExitFile(path);
//		newLogFile(path);
		logger = LoggerFactory.getLogger();
		
		return logger;
	}

	static void newLogFile(String path) {
		try {
			File file = new File(path);
			if (!file.exists()) {
				file.createNewFile();
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	static void isExitFile(String path) {
		File fileBBX = null, fileLog = null;
		try {
			fileBBX = new File(path);
			if (fileBBX != null && !fileBBX.exists()) {
				fileBBX.mkdirs();
			}

			fileLog = new File(path + "log" + File.separator);
			if (fileLog != null && !fileLog.exists()) {
				fileLog.mkdirs();
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (fileBBX != null) {
				fileBBX = null;
			}
			if (fileLog != null) {
				fileLog = null;
			}
		}
	}

	public static void initConfig(Context context, String path) {
		initLog(path);
		PropertyConfigurator.getConfigurator(context).configure();
	}

	public static  void debug(String str) {
		if (logger != null) {
			//DebugUtil.printDebugInfo(str);
			logger.debug(str);
		}
	}

	public static  void addLog(String str) {
		if (logs != null)
			logs.append(str);
	}

	public static void build() {
		if (logger != null) {
			// logs.append("\n");
			debug(logs.toString());
			logs.setLength(0);
		}
	}

//	/**
//	 * 开始上传
//	 *
//	 * @Title: uploadLog
//	 * @Description: TODO
//	 * @param: @param context
//	 * @param: @param uid
//	 * @param: @param path 严格参照 microlog.properties内配置
//	 * @return: void
//	 * @throws
//	 */
//	public static void uploadLog(Context context, String uid, String path) {
//		//日志上传服务器
//		new LogTask(context, uid, path).start();
//		/*String servicePathString = SDK.GetSDK().getServiceLogPath();
//		if(servicePathString != null) {
//			new ServiceLogTask(context, uid, servicePathString).start();
//		}*/
//
//	}
	
    public static boolean isDebug = true;// 是否需要打印bug，可以在application的onCreate函数里面初始化
    private static final String TAG = "bbx";

    // 下面四个是默认tag的函数
    public static void i(String msg)
    {
        if (isDebug)
            Log.i(TAG, msg);
    }

    public static void d(String msg)
    {
        if (isDebug)
            Log.d(TAG, msg);
    }

    public static void e(String msg)
    {
        if (isDebug)
            Log.e(TAG, msg);
    }

    public static void v(String msg)
    {
        if (isDebug)
            Log.v(TAG, msg);
    }

    // 下面是传入自定义tag的函数
    public static void i(String tag, String msg)
    {
        if (isDebug)
            Log.i(tag, msg);
    }

    public static void d(String tag, String msg)
    {
        if (isDebug)
            Log.i(tag, msg);
    }

    public static void e(String tag, String msg)
    {
        if (isDebug)
            Log.e(tag, msg);
    }

    public static void v(String tag, String msg)
    {
        if (isDebug)
            Log.i(tag, msg);
    }
}
